﻿/*#include<stdio.h>
int main()
{
	int r = 7 / 3;
	double d = 7 / 3;
	printf("%d\n", r);
	printf("%lf", d);
	return 0;
}*/
//#include<stdio.h>
//int main()
//{
//	double d = 7 / 0.0;
//	printf("%lf", d);
//}
//asdad
//asdasda

//int main()
//{
//	int a = 7 % 3;
//	printf("%d", a);
//	return 0;
//}
//int a=10
//a的二进制数为1010
//加0到32为时：00000000000000000000000000001010
//将最高位置为0后：00000000000000000000000000001010
//正整数10的原码，反码，补码为：00000000000000000000000000001010
//
//#include<stdio.h>
//int main()
//{
//	int a = 15, b = -15, c, d;
//	c = a >> 1;//将a右移1位    a移动前的补码为 00000000000000000000000000001011；移动后： 000000000000000000000000000001011
//	d = b >> 1;//将b右移1位    b移动前的补码为 11111111111111111111111111110001；移动后补码： 111111111111111111111111111110001  移动后原码 10000000000000000000000000001000
//	printf("%d\n", c);
//	printf("%d", d);
//	return 0;
//}


//位操作符
//#include<stdio.h>
//int main()
//{
//	int a = 3;
//	//00000000000000000000000000000011   --补码
//	int b = -5;
//	//10000000000000000000000000000101
//	//11111111111111111111111111111010
//	//11111111111111111111111111111011  --补码
//	int c = a & b;      //按位与
//	//   & --对应二进制有0则为0，两个同时为1，才是1
//	// 00000000000000000000000000000011
//	// 11111111111111111111111111111011 
//	// 00000000000000000000000000000011--补码
//	// 
//
//	int d = a | b;      //按位或
//	//   |   --对应二进制有1则为1，两个同时为0，才是0
//	//  00000000000000000000000000000011
//	//  11111111111111111111111111111011
//	//  11111111111111111111111111111011  --补码
//	//  11111111111111111111111111111010
//	//  10000000000000000000000000000101  --原码
//
//	int e = a^b;  //按位异或
//	//  ^  --对应二进制相同为0，不同为1
//	//  00000000000000000000000000000011
//	//  11111111111111111111111111111011
//	//  11111111111111111111111111111000  --补码
//	//  11111111111111111111111111110111
//	//  10000000000000000000000000001000  --原码
//	//
//
//	printf("%d  %d  %d", c,d,e);
//	return 0;
//}


//单目操作符 ！
//#include<stdio.h>
//int main()
//{
//	int flag = 0;
//	if (!flag)
//		printf("hehe\n");
//	if (flag)
//		printf("haha\n");
//	return 0;
//}


// -  
//#include<stdio.h>
//int main()
//{
//
//	int a = -1, b = 1;;
//	printf("%d  %d", -a,-b);
//	return 0;
//}

//#include<stdio.h>
//int main()
//{
//	int a = 10;
//	//pa是指针变量
//	int* pa = &a;//   &-取地址操作符，取出a的地址
//	*pa = 20;//  *--解引用操作符（间接访问操作符）--单目操作符--通过pa中存放的地址，找到指向的空间（内容）
//	return 0;
//}

//sizeof操作符
//#include<stdio.h>
//int main()
//{
//	int a[10];
//	int b = sizeof(a);
//	int c = sizeof(a[0]);
//	printf("%d %d",b ,c );
//	return 0;
//}

//~取反操作符
//#include<stdio.h>
//int main()
//{
//	int a = 0;
//	printf("%d",~a);
//	//a的补码：00000000000000000000000000000000
//	//~a的补码：11111111111111111111111111111111
//	//~a的原码：10000000000000000000000000000001
//	return 0;
//}


// ++前置  后置++    --前置   后置--  操作符
//#include<stdio.h>
//int main()
//{
//	int a = 1;
//	printf("%d\n", a++); 
//	printf("%d\n", a);//后置++ ,先执行，再加1
//	printf("%d\n", ++a);//++前置，先加1，再执行
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int a = (int)3.14;//将浮点型转化成整形
//	printf("%d", a);
//}
//#include<stdio.h>
//int main()
//{
//	int a = 0, b = 1;
//	if (a && b)
//		printf("haha");
//	if (a || b)
//		printf("hehe");
//}
#include<stdio.h>
int main()
{
	int a = 1, b = -1, c = 3;
	int i = a++ && b++ && c++;
	printf("%d %d %d\n", a, b, c);
	int q = 1, w = 3, e = 8;
	int m = q++ || w++ || e++;
	printf("%d %d %d",q,w,e);
	return 0;
}


